import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Locale;

/**
 * @Description 日期和时间
 * @Author hhy
 * @Date 2020/10/7 11:58
 */
public class DateTest {
    public static void main(String[] args) {

        //这个是获取当前时间的四种写法，两个参数，一个参数是格式化文本，还有一个参数填时间戳或者是Date对象
        //对于格式化文本,yyyy和y是一样的（年份），而后面的分钟、秒必须写两个，要不然的话，会少。
        System.out.println(new SimpleDateFormat("G yyyy年MM月dd日 HH:mm:ss").format(System.currentTimeMillis()));
        System.out.println(new SimpleDateFormat("G y年M月d日 hh:mm:ss").format(new Date()));
        System.out.println(new SimpleDateFormat("G y年M月d日 hh:mm:ss").format(Calendar.getInstance().getTime()));
        System.out.println(new SimpleDateFormat("G y年M月d日 hh:mm:ss").format(new GregorianCalendar().getTime()));


        //实例化Calendar对象有两种方式，一种是抽象类直接调用getInstance来实例化，一种是将子类实例化
        Calendar calendar = Calendar.getInstance(Locale.CHINA);
        System.out.println(calendar);
        //Calendar的实现类有两种，一种是格林威治时间，这个是国际通用的日历，还有一种是日本专用日历
        //日本的日历类，不是public的，而是没有修饰符的（default），default只能在同一个包中使用
        GregorianCalendar gregorianCalendar = new GregorianCalendar();
        System.out.println(gregorianCalendar);



        Date date1 = calendar.getTime();
        System.out.println("今年已经过去了"+calendar.get(Calendar.DAY_OF_YEAR)+"天");
        System.out.println("今天是这个星期的第"+calendar.get(Calendar.DAY_OF_WEEK)+"天");
        System.out.println(calendar.get(Calendar.MONTH)+"月份了");
        System.out.println("星期"+calendar.get(Calendar.WEDNESDAY));


    }
}
